/*
 * The Selling Partner API for Sellers
 * The [Selling Partner API for Sellers](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) (Sellers API) provides essential information about seller accounts, such as:  - The marketplaces a seller can list in - The default language and currency of a marketplace - Whether the seller has suspended listings  Refer to the [Sellers API reference](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) for details about this API's operations, data types, and schemas.
 *
 * OpenAPI spec version: v1
 *
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */

package software.amazon.spapi.models.sellers.v1;

import com.google.gson.annotations.SerializedName;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.Objects;

/** Information about the seller&#x27;s primary contact. */
@Schema(description = "Information about the seller's primary contact.")
public class PrimaryContact {
    @SerializedName("name")
    private String name = null;

    @SerializedName("address")
    private Address address = null;

    @SerializedName("nonLatinName")
    private String nonLatinName = null;

    public PrimaryContact name(String name) {
        this.name = name;
        return this;
    }

    /**
     * The full name of the seller&#x27;s primary contact.
     *
     * @return name
     */
    @Schema(required = true, description = "The full name of the seller's primary contact.")
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public PrimaryContact address(Address address) {
        this.address = address;
        return this;
    }

    /**
     * Get address
     *
     * @return address
     */
    @Schema(required = true, description = "")
    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    public PrimaryContact nonLatinName(String nonLatinName) {
        this.nonLatinName = nonLatinName;
        return this;
    }

    /**
     * The non-Latin script version of the primary contact&#x27;s name, if applicable.
     *
     * @return nonLatinName
     */
    @Schema(description = "The non-Latin script version of the primary contact's name, if applicable.")
    public String getNonLatinName() {
        return nonLatinName;
    }

    public void setNonLatinName(String nonLatinName) {
        this.nonLatinName = nonLatinName;
    }

    @Override
    public boolean equals(java.lang.Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        PrimaryContact primaryContact = (PrimaryContact) o;
        return Objects.equals(this.name, primaryContact.name)
                && Objects.equals(this.address, primaryContact.address)
                && Objects.equals(this.nonLatinName, primaryContact.nonLatinName);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, address, nonLatinName);
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("class PrimaryContact {\n");

        sb.append("    name: ").append(toIndentedString(name)).append("\n");
        sb.append("    address: ").append(toIndentedString(address)).append("\n");
        sb.append("    nonLatinName: ").append(toIndentedString(nonLatinName)).append("\n");
        sb.append("}");
        return sb.toString();
    }

    /** Convert the given object to string with each line indented by 4 spaces (except the first line). */
    private String toIndentedString(java.lang.Object o) {
        if (o == null) {
            return "null";
        }
        return o.toString().replace("\n", "\n    ");
    }
}
